home *** CD-ROM | disk | FTP | other *** search
Java Source | 1997-07-31 | 2.9 KB | 118 lines |
- /*
- Calendar applet prints the calendar for a month when given
- two parameters: integer month (1 - 12) and integer year (eg. 1997).
- */
- import java.awt.Graphics;
-
- public class Calendar extends java.applet.Applet {
-
- // global variable declarations
- int month, year;
-
- // initialize variables
- public void init() {
-
- // get parameters from HTML file
- Integer i = new Integer(0);
-
- month = i.parseInt(getParameter("month"));
- year = i.parseInt(getParameter("year"));
-
- }
-
- public void paint(Graphics g) {
- // print the calendar
-
- // variable declarations
- String [] daynames = {"Sun", "Mon","Tue", "Wed", "Thu", "Fri", "Sat"};
- int daycolumn, row = 1, temp, day;
-
- // code to print greeting
- g.drawString(" "+getMonthString(), 10,20);
-
- // compute start day of month using formula
- temp = year % 100;
- daycolumn = ((temp) + temp / 4 +
- monthTable(month, year) + 1) % 7;
-
- if (daycolumn == 0)
- daycolumn = 7;
-
- for (day = 1; day<=7; day++)
- g.drawString(daynames[day-1],30+day*35,60);
-
- for (day = 1; day <= daysInMonth(month, year); day++){
- g.drawString(" "+day,30+daycolumn++*35, 60+row*20);
-
- if (daycolumn == 8) {
- daycolumn = 1;
- row++;
- }
- }
- }
- int monthTable(int m, int y)
- {
-
- // compute entry in table of months for current month, year
-
- int tom = -1;
-
- switch(m) {
- case 4: case 7: tom = 0; break;
- case 1: case 10: tom = 1; break;
- case 5: tom = 2; break;
- case 8: tom = 3; break;
- case 2: case 3: case 11: tom = 4; break;
- case 6: tom = 5; break;
- case 9: case 12: tom = 6; break;
- }
- if ((m <3) && (y % 4 == 0)) {
- tom --;
- }
- return tom;
- }
-
- int daysInMonth(int m, int y)
- {
- // compute number of days in a month: don't forget leap year!
- int days = -1;
-
- switch(m) {
- case 1: case 3: case 5: case 7: case 8: case 10: case 12:
- days = 31; break;
- case 2:
- if (y % 4 == 0)
- days = 29;
- else
- days = 28;
- break;
- case 4: case 6: case 9: case 11: days = 30; break;
- }
- return days;
- }
-
- String getMonthString()
- {
- // return string corresponding to month number
-
- String temp = "problem";
-
- switch(month) {
- case 1: temp = "January"; break;
- case 2: temp = "February"; break;
- case 3: temp = "March"; break;
- case 4: temp = "April"; break;
- case 5: temp = "May"; break;
- case 6: temp = "June"; break;
- case 7: temp = "July"; break;
- case 8: temp = "August"; break;
- case 9: temp = "September"; break;
- case 10: temp = "October"; break;
- case 11: temp = "November"; break;
- case 12: temp = "December"; break;
- }
- return temp;
-
- }
-
- }